In data communication networks, multicast data packet routing or forwarding allows a source host to send a data packet to a group of destination hosts without requiring that the source host copy the packet and send each copy individually to each destination in the group. In OSI Model Layer 3 devices (e.g., a data networking router), multicast routing is accomplished, for example, using a group destination Internet Protocol (IP) address in the range of 224.x.x.x to 239.x.x.x for IP version 4 (IPv4), or in the range of FFxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx for IP version 6 (IPv6), as the destination IP address in the IP header of a multicast data packet. In OSI Model Layer 2 devices (e.g., a switch), multicast forwarding is accomplished using a Multicast IEEE 802.3 Media Access Control (MAC) address in the range of 01:00:5E:xx:xx:xx for IPv4, or in the range of 33:33:xx:xx:xx:xx for IPv6, as the destination MAC address in the Data Link header of the multicast data packet.
Layer 2 multicast forwarding may be achieved by configuring a layer 2 multicast Forwarding Database (FDB) table in a layer 2 switch with entries that each specify a particular multicast MAC address, a Virtual Local Area Network (VLAN) identifier (VLAN ID), and a corresponding list of ports on the layer 2 device out which a multicast data packet specifying the multicast MAC address and VLAN is to be transmitted for forwarding purposes. The list of ports may be dynamically learned using the Internet Group Management Protocol (IGMP) (IPv4)/Multicast Listener Discovery (MLD) (IPv6) snooping protocols. The layer 2 FDB table normally includes both unicast MAC address entries and multicast MAC address entries.
Layer 3 multicast data packet forwarding or routing may achieved by configuring a layer 3 multicast FDB table in a switching device with entries that each specify a particular source IP address, a group (or multicast) destination IP address, a VLAN ID, and a corresponding list of ports (along with a list of VLAN IDs for each port) on the switching device out which a multicast data packet specifying the group destination IP address and VLAN ID is to be transmitted. The list of ports may be dynamically learned using the IGMP snooping protocol. The list of VLAN IDs per port may be learned using a layer 3 multicast routing protocol, such as Protocol Independent Multicast (PIM), or Multicast VLAN Registration (MVR).
Note, the switching device may be a layer 2 device or a layer 3 device. In particular, the switching device does not have to be a layer 3 device to utilize the layer 3 table lookups. For example, current switches utilize layer 3 table lookups even when they are performing a layer 2 device role (e.g. IGMP snooping).
Prior art switch and router architectures use either the layer 3 multicast FDB or the layer 2 MAC FDB to provide multicast forwarding to provide both layer 2 multicast data packet forwarding and layer 3 multicast data packet routing. In the prior art, even though a layer 2 FDB table may have sufficient space for storing multicast MAC address entries, the layer 2 FDB table is used only for storing unicast MAC address entries for unicast data packet forwarding.
What is needed is a method and apparatus utilizing both the layer 2 multicast FDB table and the layer 3 multicast FDB table for multicast forwarding and thereby significantly increase the number of available FDB table entries.